package com.galen.wxRead.utils;

import java.io.File;

public class FileUtils {
    public static boolean deleteAnyone(String FileName) {
        File file = new File(FileName);//根据指定的文件名创建File对象
        if (!file.exists()) {  //要删除的文件不存在
            System.out.println("文件" + FileName + "不存在，删除失败！");
            return false;
        } else { //要删除的文件存在
            if (file.isFile()) { //如果目标文件是文件
                return deleteFile(FileName);
            } else {  //如果目标文件是目录
                return deleteDir(FileName);
            }
        }
    }

    public static boolean deleteFile(String fileName) {
        File file = new File(fileName);//根据指定的文件名创建File对象
        if (file.exists() && file.isFile()) { //要删除的文件存在且是文件
            if (file.delete()) {
                System.out.println("文件" + fileName + "删除成功！");
                return true;
            } else {
                System.out.println("文件" + fileName + "删除失败！");
                return false;
            }
        } else {
            System.out.println("文件" + fileName + "不存在，删除失败！");
            return false;
        }


    }

    /**
     * 删除指定的目录以及目录下的所有子文件
     *
     * @param dirName is 目录路径
     * @return true or false 成功返回true，失败返回false
     */
    public static boolean deleteDir(String dirName) {

        if (dirName.endsWith(File.separator))//dirName不以分隔符结尾则自动添加分隔符
            dirName = dirName + File.separator;
        File file = new File(dirName);//根据指定的文件名创建File对象
        if (!file.exists() || (!file.isDirectory())) { //目录不存在或者
            System.out.println("目录删除失败" + dirName + "目录不存在！");
            return false;
        }
        File[] fileArrays = file.listFiles();//列出源文件下所有文件，包括子目录
        for (int i = 0; i < fileArrays.length; i++) {//将源文件下的所有文件逐个删除
            FileUtils.deleteAnyone(fileArrays[i].getAbsolutePath());
        }
        if (file.delete())//删除当前目录
            System.out.println("目录" + dirName + "删除成功！");

        return true;

    }
}
